函数

fesetenv (C++11)

int fesetenv(const fenv_t *envp);

设置浮点环境

尝试用 envp 指向的对象建立 浮点环境 的状态。

浮点环境 是影响 浮点计算(包括 浮点异常舍入方向模式_ )的状态标志和控制模式的集合。

如果成功的话,这个函数会改变浮点环境的当前状态,但不会真的 触发 状态中的异常。

调用这个函数的程序需要确保在本次函数调用时,编译指示 FENV_ACCESS 已经开启。

参数

envp

要么是指向 fenv_t 对象的指针,要么是 浮点环境 的宏值之一:

宏名 描述
FE_DFL_ENV 默认的浮点环境(和程序启动时一样)

特定的库实现可能会支持附加的 浮点环境 状态值(它们对应的宏同样以 FE_ 开头的宏)。

返回值

如果状态被成功建立,则返回0,否则返回非0。

数据竞争

每个线程都保持着分离的、拥有自己状态的 浮点环境 。产生一个新线程就复制当前状态。[ 这个适用于 C11 和 C++11 的实现 ]

异常

不抛出异常的保证:这个函数从不抛出异常。

另请参见

函数 描述
feupdateenv 更新浮点环境 (函数)
fegetenv 获取浮点环境 (函数)
fesetenv 设置浮点环境 (函数)